Embodiments of the present invention relate to communications over an external computer bus. More particularly, embodiments of the present invention relate to a dedicated interconnection over a shared external computer bus.
Known computers include a serial port that can provide a dedicated connection to a peripheral. For example, to transfer data to the peripheral, a processor of the computer can send data over the internal input/output (xe2x80x9cI/Oxe2x80x9d) bus to a Universal Asynchronous Receiver/Transmitter (xe2x80x9cUARTxe2x80x9d) at a serial port address. The computer""s UART serializes the data and sends data bits one at a time over a serial communications link (e.g., a wire, a serial cable) coupled to the UART. The term xe2x80x9ccoupledxe2x80x9d encompasses a direct connection, an indirect connection, etc. The peripheral at the other end of the serial communications link includes a UART that receives the data. A UART-based serial port is typically coupled to a single peripheral device.
Computers may include Universal Serial Bus (xe2x80x9cUSBxe2x80x9d) root hub including one or more USB host ports. A USB host port can be coupled to a plurality of USB peripheral devices (xe2x80x9cUSB target devicesxe2x80x9d) over a serial communication link. Each USB target device can be assigned a device address by the USB host (e.g., the software and hardware of the computer that supports the USB). The USB host can include a USB driver that knows the device address of each USB target device. Each USB target device can have a corresponding device driver that communicates with the USB driver to perform data transfers to and from the USB target device.
When a device driver is to transfer data to or from a USB target device, it sends the USB driver an I/O Request Packet (xe2x80x9cIRPxe2x80x9d) to request initiation of the data transfer. A single USB target device cannot typically perform an entire block transfer of data across the USB at one time, however, because the USB is a shared bus (i.e., many USB target devices typically can use the same bus at the same time). Accordingly, a data transfer is typically divided into segments (e.g., transactions) that are transferred during successive time periods (e.g., frames). By parsing data transfers into transactions, the USB host can ensure that a portion of the USB bandwidth can be devoted to other USB target devices. In view of the foregoing, it can be appreciated that a substantial need exists for methods and apparatus which can advantageously provide a dedicated interconnection over a shared computer bus.